#ifndef LINKLIST_H
#define LINKLIST_H
#include <stdlib.h>
#include <stdio.h>
typedef int Element;
// 链表核心是定义节点
typedef struct list_node{
    Element value;
    struct list_node *next;
}ListNode;

// 链表的表头
typedef struct {
    ListNode head;
    int len;
}LinkList;

LinkList *createLinkList();
void releaseLinkList(LinkList *linkList);
// 链表的插入，推荐头插法，而不是任意位置的插入
int insertLinkList(LinkList *linkList, int pos, Element e);
void showLinkList(LinkList *linkList);
// 重点，找e这个节点的前一个节点
int deleteLinkList(LinkList *linkList, Element e);

// 链表倒序，没有生成新空间，是在原来的空间内进行重新组合
void reverseLinkList(LinkList *linkList);
#endif //LINKLIST_H
